Eggplant DAIモデルをスニペットにリンクする
テスト対象システム(SUT)のEggplant DAIモデルは、特定の状態と、それらの状態内で発生するアクションから構築されます。Eggplant FunctionalはEggplant DAIと統合のSenseTalkコードスニペットを使用して、SUTと連携できます。スニペットは、モデル内の特定のアクションまたは状態に接続されます。Eggplant Functionalでは、自動スニペット生成を使用して、スニペットを迅速に作成できます。
Eggplant DAIのスニペットとは何ですか?
スニペットは、UI のボタンをクリックする SenseTalk コードの 1 行のように単純なものから、複数行のコードや、外部データファイルからユーザー名やパスワードを読み取り、その情報をモデルの特定のアクションステップに入力するなど、より複雑なアクションを実行するスクリプト全体まで多岐にわたります。テストで繰り返し実行されるタスクの場合は、スニペットを Eggplant Functional ハンドラー としてフォーマットできます。DAI スニペットで使用する推奨ハンドラー構文については、以下の注記を参照してください。
モデルを構築する際には、各Actionをアプリケーションやテスト対象のソフトウェアと対話するユーザーが行う小さな、別々の活動として考えることが有用です。その方法に従えば、それらのActionを実行するためのシンプルなSenseTalkスニペットを書くことができるはずです。
また、モデルの異なるstateや領域で同じ、または非常に似ているActionを探すことで、同じコードスニペットを複数の目的に再利用することができます。SenseTalkは非常に柔軟性があり、このようなモジュール化されたスクリプティング手法に適しています。
スクリプトのモジュール化とコードの再利用をサポートするため、SenseTalk はハンドラー構文を提供しています。ハンドラーを使用すると、SenseTalk コードに名前を付け、スクリプト内のさまざまな場所から呼び出して再利用できます。SenseTalk は、目的に応じていくつかのハンドラーキーワードを提供しています。DAI のスニペットで使用する場合は特にto handle 構文をお勧めします。
ハンドラの使用とスニペットにおけるto handle 構文の詳細については、_SenseTalkリファレンス_のTo, To Handleキーワード、およびEggplant Functionalのコードの再利用ページのハンドラを参照してください。ハンドラの技術的な説明については、_SenseTalkリファレンス_のハンドラを参照してください。
Eggplant FunctionalでSenseTalkコードを書くための完全な情報はこちらにあります:
スニペットの使用
Designer > Models では、SenseTalk スニペットが左ペインの Snippets タブに表示されます。モデルの場合は、Manage Execution Environments ウィンドウで Eggplant Functional スイートの場所を指定することに加えて、Snippets タブでSuite の相対的な場所 も指定する必要があることに注意してください。
あなたのスクリプトがc:\users\DAIuser\suite_location.suiteルートフォルダに位置している場合、c:\users\`がManage Execution Environmentsウィンドウで指定されているなら、DAIuser\suite_location.suite\`はそのモデルのための相対パスになります。
詳細な手順については、Eggplant Functional Suite の接続を参照してください。
さらに、スイート接続は特定のエージェント接続を識別します。スニペットをSnippetsタブで利用できるようにするには、そのエージェントが実行されている必要があります。詳細な手順については、Eggplant DAI実行環境の設定をご覧ください。エージェントが実行中で、モデルにスイートが定義されている場合、Snippetsタブに緑色のインジケーターが表示されます。

Snippetsタブには、添付されたEggplant FunctionalSuiteのすべてのスクリプトが表示され、モデル内のActionにそれらのスクリプトを接続できます。Eggplant DAI内で建設している特定のアプリケーションやモデルのためのSuiteを作成することを希望するかもしれません。そのSuiteには、それらのモデル専用のスニペットだけを保持するべきです。
Eggplant DAI内で、Snippetsタブに表示されるスニペットの任意のコードを表示することができます。ペイン内のスニペットを右クリックし、View Snippetを選択します。SenseTalkコードは、Modelerウィンドウの下部のConsoleエリアの新しいタブで開きます。一度に複数のスニペットを開いて、タブを個別に閉じることができます。スニペットペインで右クリックし、Clear Viewed Snippetsを選択して、Console内のすべての開いたスニペットタブを閉じます。
Designer > Snippets タブのスクリプトエディタを使用してスニペットを編集することもできます。詳細については、デザイナー ページをご覧ください。
モデルが実行されるようにSUTでテストを実行するスニペットを設定するには、SenseTalkスニペットをEggplant DAIのstateやActionに関連付けます:
- Modelタブ内のstateまたはActionを選択します。
- 左ペインのSnippetsタブで、選択に追加したいスクリプトを右クリックします。
- 選択したスクリプトをstateまたはActionに追加するために、コンテキストメニューからAdd to Selectedを選択します。
必要に応じて、一つのstateやActionに複数のスニペットを接続することができます。
ワークスペース内の各アクションの左上隅には、2つのドットが表示されます。スニペットがアタッチされると、左のドットが緑色に変わります。右のドットは、サブモデルがアタッチされている かどうかを示します。緑色のドットにカーソルを合わせると、アタッチされているスニペットまたはサブモデルを示すツールチップが表示されます。
スニペットとサブモデルの両方を同じActionに接続することができます。スニペットとサブモデルがActionに添付されている場合、スニペットが最初に実行され、次にサブモデルが実行されます。
プロパティタブの使用
右サイドバーのPropertiesタブを使用して、添付されたスニペットのプロパティを設定または変更できます。モデルワークスペース内のstateまたはActionを選択します。選択に応じて、右サイドバーにAction PropertiesまたはState Propertiesタブが表示されます。以下に注意してください:
- Actionまたはstateのプロパティを見ている場合、Snippets called byセクションには、選択したActionまたはstateに接続されているスニペットがすべて表示されます。モデルが実行しないようにしたいスニペットについては、Disabledを選択します。
- Snippets called byセクションのNameフィールドには、選択したActionまたはstateに接続するスニペットの名前を入力できます。
Snippets called byセクションのプロパティは、Snippet Properties I/O Editダイアログボックスを使用して修正できます:
-
Snippets called by stateまたはSnippets called by actionペインを右クリックします。
-
コンテキストメニューからEdit Snippet Interfaceを選択します。
:::注意点
コンテキストメニューでは、スニペットの削除と表示、Snippet Properties I/O Editペインのオープンが可能です。
:::

スクリプトがそのstateまたはActionに遭遇したときに入力や出力、またはその両方として使用するstateまたはActionのParameterを選択できます。ダイアログボックスでInput、Output、またはその両方を選択します。
モデルの状態については、Eggplant DAI での状態の定義 を参照してください。
モデルアクションの詳細については、Eggplant DAI のアクションを参照してください。